<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>笔记</title>
</head>
<body>
<p>官网 https://www.rollupjs.com/</p></br>
<p>转换 https://www.rollupjs.org/repl/</p></br>
<p>安装 npm install --global rollup</p></br>
<pre>C:\Users\Pyc>rollup --help

  rollup version 2.33.1
  =====================================

  Usage: rollup [options] <entry file>

  Basic options:

  -c, --config <filename>     Use this config file (if argument is used but value
                                is unspecified, defaults to rollup.config.js)
  -d, --dir <dirname>         Directory for chunks (if absent, prints to stdout)
  -e, --external <ids>        Comma-separate list of module IDs to exclude
  -f, --format <format>       Type of output (amd, cjs, es, iife, umd, system)
  -g, --globals <pairs>       Comma-separate list of `moduleID:Global` pairs
  -h, --help                  Show this help message
  -i, --input <filename>      Input (alternative to <entry file>)
  -m, --sourcemap             Generate sourcemap (`-m inline` for inline map)
  -n, --name <name>           Name for UMD export
  -o, --file <output>         Single output file (if absent, prints to stdout)
  -p, --plugin <plugin>       Use the plugin specified (may be repeated)
  -v, --version               Show version number
  -w, --watch                 Watch files in bundle and rebuild on changes
  --amd.id <id>               ID for AMD module (default is anonymous)
  --amd.define <name>         Function to use in place of `define`
  --assetFileNames <pattern>  Name pattern for emitted assets
  --banner <text>             Code to insert at top of bundle (outside wrapper)
  --chunkFileNames <pattern>  Name pattern for emitted secondary chunks
  --compact                   Minify wrapper code
  --context <variable>        Specify top-level `this` value
  --entryFileNames <pattern>  Name pattern for emitted entry chunks
  --environment <values>      Settings passed to config file (see example)
  --no-esModule               Do not add __esModule property
  --exports <mode>            Specify export mode (auto, default, named, none)
  --extend                    Extend global variable defined by --name
  --no-externalLiveBindings   Do not generate code to support live bindings
  --failAfterWarnings         Exit with an error if the build produced warnings
  --footer <text>             Code to insert at end of bundle (outside wrapper)
  --no-freeze                 Do not freeze namespace objects
  --no-hoistTransitiveImports Do not hoist transitive imports into entry chunks
  --no-indent                 Don't indent result
  --no-interop                Do not include interop block
  --inlineDynamicImports      Create single bundle when using dynamic imports
  --intro <text>              Code to insert at top of bundle (inside wrapper)
  --minifyInternalExports     Force or disable minification of internal exports
  --namespaceToStringTag      Create proper `.toString` methods for namespaces
  --noConflict                Generate a noConflict method for UMD globals
  --outro <text>              Code to insert at end of bundle (inside wrapper)
  --preferConst               Use `const` instead of `var` for exports
  --no-preserveEntrySignatures Avoid facade chunks for entry points
  --preserveModules           Preserve module structure
  --preserveModulesRoot       Put preserved modules under this path at root level
  --preserveSymlinks          Do not follow symlinks when resolving files
  --shimMissingExports        Create shim variables for missing exports
  --silent                    Don't print warnings
  --sourcemapExcludeSources   Do not include source code in source maps
  --sourcemapFile <file>      Specify bundle position for source maps
  --stdin=ext                 Specify file extension used for stdin input
  --no-stdin                  Do not read "-" from stdin
  --no-strict                 Don't emit `"use strict";` in the generated modules
  --strictDeprecations        Throw errors for deprecated features
  --systemNullSetters         Replace empty SystemJS setters with `null`
  --no-treeshake              Disable tree-shaking optimisations
  --no-treeshake.annotations  Ignore pure call annotations
  --no-treeshake.moduleSideEffects Assume modules have no side-effects
  --no-treeshake.propertyReadSideEffects Ignore property access side-effects
  --no-treeshake.tryCatchDeoptimization Do not turn off try-catch-tree-shaking
  --no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw
  --waitForBundleInput        Wait for bundle input files
  --watch.buildDelay <number> Throttle watch rebuilds
  --no-watch.clearScreen      Do not clear the screen when rebuilding
  --watch.skipWrite           Do not write files to disk when watching
  --watch.exclude <files>     Exclude files from being watched
  --watch.include <files>     Limit watching to specified files

  Examples:

  # use settings in config file
  rollup -c

  # in config file, process.env.INCLUDE_DEPS === 'true'
  # and process.env.BUILD === 'production'
  rollup -c --environment INCLUDE_DEPS,BUILD:production

  # create CommonJS bundle.js from src/main.js
  rollup --format=cjs --file=bundle.js -- src/main.js

  # create self-executing IIFE using `window.jQuery`
  # and `window._` as external globals
  rollup -f iife --globals jquery:jQuery,lodash:_ \
    -i src/app.js -o build/app.js -m build/app.js.map

  Notes:

  * When piping to stdout, only inline sourcemaps are permitted

  For more information visit https://rollupjs.org</pre></br>

<h2>直接打包</h2>
<p>rollup main.js -f cjs -o bundle-cjs.js</p></br>
<p>rollup main.js -f es -o bundle-es.js</p></br>

<h2>通过配置文件打包</h2>
<p>创建rollup.config.js文件，配置打包参数</p></br>
<p>>rollup -c</p>


<pre>// rollup.config.js
  export default {
    // 核心选项
    input,     // 必须
    external,
    plugins,
  
    // 额外选项
    onwarn,
  
    // danger zone
    acorn,
    context,
    moduleContext,
    legacy
  
    output: {  // 必须 (如果要输出多个，可以是一个数组)
      // 核心选项
      file,    // 必须
      format,  // 必须
      name,
      globals,
  
      // 额外选项
      paths,
      banner,
      footer,
      intro,
      outro,
      sourcemap,
      sourcemapFile,
      interop,
  
      // 高危选项
      exports,
      amd,
      indent
      strict
    },
  };</pre>

  <pre>
    # 或者, 使用自定义的配置文件，这里使用my.config.js作为配置文件
    $ rollup --config my.config.js
  </pre>


</body>
</html>